<script setup>
    import { useStore } from 'vuex'
    //获取router实例
    import { useRouter } from 'vue-router';
    const props = defineProps(['menuData', 'index'])

    const store = useStore()
    //创建router实例
    const router = useRouter();
    //点击菜单
    const handleClick = (item, active) => {
        console.log(item, "item");
        store.commit("addMenu",item.meta)
        store.commit("updateMenuActive",active)
        router.push(item.meta.path)
    }
</script>

<template>
    <template v-for="(item, index) in props.menuData">
        <!-- 没有子菜单的菜单项 -->
        <el-menu-item @click="handleClick(item, `${props.index}-${item.meta.id}`)"
            v-if="!item.children || item.children.length == 0" :index="`${props.index}-${item.meta.id}`"
            :key="`${props.index}-${item.meta.id}`">
            <el-icon size="20px">
                <!-- 动态获取主件 -->
                <component :is="item.meta.icon"></component>
            </el-icon>
            <span>{{ item.meta.name }}</span>
        </el-menu-item>

        <!-- 有子菜单的菜单项 -->
        <el-sub-menu v-else :index="`${props.index}-${item.meta.id}`">
            <template #title>
                <el-icon size="20px">
                    <!-- 动态获取主件 -->
                    <component :is="item.meta.icon"></component>
                </el-icon>
                <span>{{ item.meta.name }}</span>
            </template>
            <!-- 递归渲染子菜单 -->
            <tree-menu :index="`${props.index}-${item.meta.id}`" :menuData="item.children" />
        </el-sub-menu>
    </template>

</template>

<style scoped></style>